home *** CD-ROM | disk | FTP | other *** search
-
-
- Special Support Library
-
- Version 5.1
-
- (c) 1993-1995 Martin Mares, MJSoft System Software
-
- ================================================================================
-
-
- Preface
- =======
-
- The Special Support Library, accompanying utilities and their documentation
- are Copyright (c) Martin Mares, MJSoft System Software, Prague, Czech Republic.
-
- This archive can be freely redistributed as long as all of its files are
- included in their original form without any additions, deletions or
- modifications (excluding addition of other README-style files and icons) and no
- more than a nominal fee is charged for its distribution. All copyright notices
- in the programs and accompanying documentation files must remain intact. It's
- especially forbidden to add various '.displayme' files and BBS advertisements.
- This style of distribution is generally known as FREEWARE.
-
- The only one exception to the previously mentioned distribution rights is the
- library code itself (ss.library), which may be distributed separately in any
- kind of software package (including commercial one), but the documentation must
- inform the user that SS.library has been developed by MJSoft System Software and
- that there is no warranty on it.
-
- Special permission is given to Fred Fish to distribute this program on his
- "Fish Disks".
-
- This software is provided "AS IS" without warranty of any kind, either
- expressed or implied. The author is not responsible for any damage caused by
- it.
-
-
- About SS Library:
- =================
-
- The Special Support Library is a small library written to simplify
- development of small assembly programs. These programs usually contain
- small routine, which is preceeded by some sort of startup code for argument
- parsing, WB startup, opening of required libraries and similar actions.
- With SSLib, you include only a significantly less piece of code for loading
- of the library (this startup is usually generated by the "start" macro in
- ssmac.h).
-
- But SSLib is very useful not only for small programs, but also for large
- projects, because it offers a very powerful object tracking mechanism based
- on ideas of the arp.library.
-
- There are listed some features of SSLib:
-
- (a) The library currently doesn't contain any support of calling from
- high-level languages (C, Pascal, Modula, Oberon, False, ADA, RTL/2,
- PL/M, AMOS, Forth, AmigaBasic, GFABasic, REXX, PostScript, TeX,
- Metafont, DBase 6.0, DML, ISM, Logo, GCL, Prolog, SmallTalk,
- BCPL, Lisp and ...).
-
- (b) SSLib requires kickstart V37 or higher, but you may call OpenLibrary
- with older kickstarts. In this case, SSLib will display an alert
- informing the user about this fact and will refuse to open.
-
- (c) SSLib uses A5 to store base of its variables. But it doesn't steal
- you an address register, because you can simply use this register
- to index your own BSS variables (special variables defined by SS
- (see SS.i) are stored BELOW A5, your own ABOVE A5. A5 itself
- points to pointer to SSBase, therefore you can obtain this value
- needed for calling of SSLib with minimal overhead).
-
- (d) SSLib installs its own exception handler to all tasks using StartupInit.
- This exception handler displays contents of all the registers and
- allows the user to select if he wants to Suspend the program, Reboot
- the system or to try to Abort the program (it will automatically
- free all tracked resources, but it could result in a crash if there's
- something rotten in the system).
-
- (e) SSLib performs parsing of arguments (from both CLI and Workbench).
-
- (f) ssmac.h contains a powerful set of universal and special macros which
- simplify writing of programs. (But these macros might have problems
- with some compilers. If you fix some of these problems, send me
- updated version and I will include it in the next release of SSLib.)
-
- (g) SSLib offers fast memory pool management mechanism allowing quick
- manipulation with small chunks of memory. The tracking functions
- use their own memory pool to increase execution speed.
-
- (h) Tasks can define their own low-memory handling routine, which is called
- whenever some memory allocation fails (this feature is supported by
- exec V39+, but this works under V37+; these routines are called by
- library expunge code, therefore the library itself must use alternate
- OpenCount).
-
- (i) Example programs are not included in this archive. They are distributed
- separately.
-
- (j) Provides powerful mechanism for writing of pure (re-entrant) programs.
- If you use the standard variable mechanism (see [c] and StartupInit doc)
- instead of storing data in the program itself (in DATA/BSS hunk), the
- program should be pure.
-
- (k) Gives you high-speed buffered I/O routines (significantly faster than
- those in dos.library!).
-
- For other information, see the rest of this file, SSLib.doc, SS.i, ssmac.doc
- and all text files in this archive.
-
- Future plans:
- =============
-
- - Some sort of string parsing mechanism.
-
- - Callability from high-level languages. I'm preparing a GCC interface, but I
- have no time to finish it.
-
- - Some support of graphics (MUI object generator?) - will be included
- in separate library.
-
- - Many other things including better macro set.
-
- Files in this archive:
- ======================
-
- History list of modifications
- SSLib.doc library doc
- SSMac.h standard set of support macros
- SSMac.doc description of the macros
- SS.i library include file
- SS.library the library itself
- SSDiag small diagnostic utility
- SSDiag.doc description of SSDiag
- TExtract text hunk extractor
- TExtract.doc description of TExtract
-
- Final words:
- ============
-
- Thanks to SinSoft, PCSoft and Short Software for many good suggestions and bug
- reports.
-
- Send all comments and bug reports to <mjsoft@k332.feld.cvut.cz>.
-
-